Technical Q&A

Java 14 - 自動的に生成される aete リソースにおけるプロパティとメソッド(1999 年 5 月 17 日)


Q: AppleScript for Java を使っていますが、自動的に生成される 'aete' リソースでメソッドではなくプロパティとして表示されるルーチンがあります。

メソッドは次のとおりです。
public void
                  setDictionaryName( String name ){...}


これが、AppleScript の用語説明では次のように表示されます。

Properties:
<Inheritance> Object [r/o]
dictionary name string -- public void foo.setDictionaryName(String)

用語説明は次のようになるものだと思っていました。

MyClass:

setDictionaryName: public void foo.setDictionaryName(String)
setDictionaryName reference
parameters string

なぜこのようなことが起こるのでしょうか?

 

A: プロパティにアクセスするルーチン (setX()、getX()、またはisX()。Xはプロパティの名前) に対して標準的な JavaBean の構文を使うと、イントロスペクタはそのルーチンをクラスのプロパティであると判断します。

ここで宣言されているメソッドは dictionaryName プロパティの値を設定するためのルーチンと考えられます。そのため、プロパティにアクセスする関数と解釈されます。結果として、自動用語ジェネレータのデフォルトの動作では、メソッドの形式ではなく、プロパティの形式で用語説明にエントリが作成されます。

実際にはこの動作のほうが好都合です。なぜなら、エントリがメソッドの場合は次のようにスクリプトを記述しなければならないからです。

set dictionary name of foo 1 to "English Language"

しかし、エントリがプロパティならば、次のように簡単に記述できます。

setDictionaryName of foo 1 parameters {"English Language" }


-- Michael Hopkins
Worldwide Developer Technical Support

Technical Q&As | Contents
Previous Question | Next Question

To contact us, please use the Contact Us page.